1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and data processing system for improved operating system operation. Still more particularly, the present invention provides a method and data processing system for providing virtualization of memory-mapped input/output physical addresses to provide a contiguous system memory address space.
2. Description of Related Art
In many data processing systems, input/output cache inhibited addresses are mapped into an address range of the system address space. Often, the input/output cache inhibited addresses have physical addresses intermediate multiple physical address ranges of the system memory allocated for operating system usage. In such an instance, the input/output cache inhibited addresses present a memory “hole” of physical addresses that reside in between separate blocks of memory addressable by the operating system.
An operating system may fail to support system memory addresses with holes. For example, in some configurations of two memory arrays, the Linux operating system may fail to handle memory addresses with holes. In such a situation, the operating system kernel may be modified to accommodate the memory hole. However, such a solution is time consuming and may jeopardize some server program functionality, availability, and the ability of the data processing system to fully support an operating system version with such deficiencies.
Accordingly, it would be advantageous to provide a data processing system that supports system memory addresses with holes. It would be further advantageous to provide a data processing system that supports system memory addresses with holes without requiring modification of the operating system kernel.